package com.xyy.saas.payment.cores.vo;

import com.xyy.saas.payment.cores.enums.ChannelEnum;

import java.io.Serializable;

/**
 * @author wangtianqi
 * @date 2019/11/22 16:48
 */
public class OrderRefundVoV1 implements Serializable {

    private static final long serialVersionUID = 6793283823932400017L;
    /**
     * 交易单，一笔支付的交易单号
     */
    private String tradeNo;
    /**
     * 支付渠道
     */
    private ChannelEnum payChannel;
    /**
     * 退款详情，最多 20 个字符
     */
    private String description;
    /**
     * 退款金额大于 0, 单位为分，例如：人民币为分（如退款金额为 1 元，此处请填 100）。必须小于等于可退款金额
     */
    private Integer amount;
    /**
     *接口调用方的标识，支付平台分配，用于验签
     */
    private String invoker;
    /**
     * 接口调用方的业务类型, 支付平台分配
     */
    private String businessType;
    /**
     * 业务方退款单号
     */
    private String businessRefundNo;
    /**
     * 异步结果回调地址
     */
    private String callback;
    /**
     * 退清分方 参数格式 ： List<OrderClearingUserVo> 转 JSON
     * OrderRoyaltyUserVo包含两个参数： "clearingUser" 、"businessIdType" 、"amount" ; 用于指定退清分方 、退清分用户来源 和 退清分金额。把这些OrderClearingUserVo放进一个list内，然后转成json（参与签名）
     * 上述 amount 不可大于等于 0
     * 退手续费为 上面参数里的 所有的 amount 相加 然后 乘以 渠道手续费率 然后向下取整
     *
     * 退清分内 传入的 退清分总金额 要与 所有 未参与退清分的退款单的总金额 相等
     */
    private String refundClearingJson;
    /**
     * 业务方需要退的佣金 此处refundCommission > 0
     */
    private Integer refundCommission;

    public String getRefundClearingJson() {
        return refundClearingJson;
    }

    public void setRefundClearingJson(String refundClearingJson) {
        this.refundClearingJson = refundClearingJson;
    }

    public Integer getRefundCommission() {
        return refundCommission;
    }

    public void setRefundCommission(Integer refundCommission) {
        this.refundCommission = refundCommission;
    }

    public ChannelEnum getPayChannel() {
        return payChannel;
    }

    public void setPayChannel(ChannelEnum payChannel) {
        this.payChannel = payChannel;
    }

    public String getTradeNo() {
        return tradeNo;
    }

    public void setTradeNo(String tradeNo) {
        this.tradeNo = tradeNo;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getCallback() {
        return callback;
    }

    public void setCallback(String callback) {
        this.callback = callback;
    }

    public String getInvoker() {
        return invoker;
    }

    public void setInvoker(String invoker) {
        this.invoker = invoker;
    }

    public String getBusinessType() {
        return businessType;
    }

    public void setBusinessType(String businessType) {
        this.businessType = businessType;
    }

    public Integer getAmount() {
        return amount;
    }

    public void setAmount(Integer amount) {
        this.amount = amount;
    }

    public String getBusinessRefundNo() {
        return businessRefundNo;
    }

    public void setBusinessRefundNo(String businessRefundNo) {
        this.businessRefundNo = businessRefundNo;
    }

}
